package main

import "fmt"

//数据类型
//Go语言按类别有以下几种数据类型：
//1.bool，一个字节，值是true或者false，不可以用0或者1表示（java中boolean占用4个字节，而boolean作为数组出现时，每个boolean占用1个字节）
//2.int/uint(带符号为与不带符号位的int类型)：根据平台不同是32位或者64位
//3.intx/uintx:x代表任意位数，例如：int3，代表占3bit的int类型
//4.byte占用8位，一个字节，相当于uint8，不带符号位
//5.floatx:由于没有double类型，所以float64就是double。float32小数精确到7位，float64小数精确到15位。
//6.complex64/complex128:复数类型
//7.uintptr:保存指针用的类型，也是随着平台改变而改变，因为指针的长度就是随平台而变。
//8.其他类型值：array，struct，string
//9.引用类型：slice，map，channel
//10.接口类型：interface
//11.函数类型：func
//注意：Golang中还有个rune类型，它等价于int32类型。


//类型转换
//在Go 语言里面没有隐式转换，遇到不同类型想互用，只能进行强制类型转换
func transportType(){
	var sum int = 17
	var count int = 5 // 声明并初始化
	var mean float32 //声明
	fmt.Println(mean)
	mean = float32(sum)/float32(count) //强制转换
	fmt.Printf("mean 值为：%f\n",mean)

	var num = 123  //忽略类型，自动识别类型
	var num3 int = 456
	num2:=34 //直接初始化
	fmt.Println(num, num2, num3)

	var name1,name2,name3 int
	name1,name2,name3 = 11, 22, 33
	fmt.Println(name1,name2,name3)

	var v1,v2,v3 = 1,2,3
	fmt.Println(v1,v2,v3)


	//出现在:=左侧的变量不应该是已经被声明过的，且只能在函数体内出现
	a1,a2,a3 := 111,222,333
	fmt.Println(a1,a2,a3)
}


func IfStatement(){
	if num:=10; num <0{
		fmt.Println("小于0")
	}else if num>0{
		fmt.Println("大于0")
	}else{
		fmt.Println("等于0")
	}
}
func main() {
	transportType()
	IfStatement()
}